<?php
namespace module;
use houdunwang\request\Request;
use houdunwang\route\Controller;
use system\model\Module;

/**
 * Created by phpstrom.
 * User:wangyahe
 * Date: 2017/6/13
 * Time: 20:04
 */


//1.return view()，这样不能加载到我们需要的模板文件
//    2.return view('module/base/template/base/index.php'); 可以正常加载我们需要的模板,因为这里是要进行获得目录里面的文件所以要将目录的结构写清楚了
//而在helper中是加载的地址参数，所以不用写上'module/，直接从m=开始就可以。
//    3.对第二部进行升级，放在公众控制器中

class HdController extends Controller
{
	use Wechat;
	//创建一个属性
	protected $template;
	public function __construct()
	{
		//获得模型的参数
		$m=Request::get('m');
		//根据地址栏m参数，查出来结果中module_is_system知道是不是系统模块，通过get获得的m参数知道模块的名称，然后通过模块的名称导数据苦衷寻找模型的module_is_system字段值
		$module=Module::where('module_name',$m)->first();
		//下面调用的是属性，因为没有（）所以是template方法，而不是template属性，通过判断然后通过模块的名称导数据苦衷寻找模型的module_is_system字段值来看是否是系统模块return view('module/base/template/base/index.php');
		$this->template = ( $module[ 'module_is_system' ] == 1 ? 'module' : 'addons' ) . '/' . $m . '/template/';
		//return view( $this->template );
	}

	//创建加载模板文件函数(传进来的参数是方法名)---这个函数就是将方法名通过传参的形式来调用
	public function template($tpl='', $args = []){
		//?m=base&action=controller/wx/index
		$info = explode( '/' , Request::get( 'action' ) );
//        p($info);die;
		//判断是否有参数传递进来
		$tpl  = empty( $tpl ) ? $info[ 2 ] : $tpl;
//		p($tpl) ;die;
		//info[1]控制器类名因为类名都是大写，但是这里的目录的命名凡是都是小写所以要进行转换小写，$info[ 2 ]值得是方法
//		p($this->template . strtolower( $info[ 1 ] ) . '/' . $tpl);die();//module/base/template/wx/
		return view( $this->template . strtolower( $info[ 1 ] ) . '/' . $tpl ,$args);
	}
}